package com.easyctba.core.service;

import com.easyctba.common.core.domain.R;
import com.easyctba.core.domain.CtbaFias;
import com.easyctba.core.domain.bo.FiasAddPolylineBo;
import com.easyctba.core.domain.bo.FiasConfigBo;
import com.easyctba.core.domain.bo.FiasEncodeBo;
import com.easyctba.core.domain.vo.CtbaFiasVo;
import com.easyctba.core.domain.bo.CtbaFiasBo;
import com.easyctba.common.mybatis.core.page.TableDataInfo;
import com.easyctba.common.mybatis.core.page.PageQuery;

import java.util.Collection;
import java.util.List;

/**
 * 弗兰德斯分析Service接口
 *
 * @author Huang
 * @date 2024-03-18
 */
public interface ICtbaFiasService {

    /**
     * 查询弗兰德斯分析
     */
    CtbaFiasVo queryById(Long id);

    /**
     * 查询弗兰德斯分析列表
     */
    TableDataInfo<CtbaFiasVo> queryPageList(CtbaFiasBo bo, PageQuery pageQuery);

    /**
     * 查询弗兰德斯分析列表
     */
    List<CtbaFiasVo> queryList(CtbaFiasBo bo);

    /**
     * 新增弗兰德斯分析
     */
    Boolean insertByBo(CtbaFiasBo bo);

    /**
     * 修改弗兰德斯分析
     */
    Boolean updateByBo(CtbaFiasBo bo);

    /**
     * 校验并批量删除弗兰德斯分析信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    R<CtbaFiasVo> getInfoByUserAndProject(Long id);

    Boolean initFIAS(Long id);

    Boolean fiasUploadVideo(Long id, String url);

    R<Void> fiasConfig(FiasConfigBo bo);

    R<Void> preUpload(Long id);

    R<Void> nextToEncode(Long id);

    R<Void> encode(FiasEncodeBo bo, Long id);

    R addPolyline(FiasAddPolylineBo bo);

    R getPolyline(Long id);

    R<Void> nextToDownload(Long id);

    R<Void> preToPolyline(Long id);

    R getRadar(Long id);

    R result(Long id);
}
